#include <iostream>
#include <cstdio>

#include <unistd.h>
#include <signal.h>
using namespace std;

void count(int cnt)
{
    while(cnt--)
    {
        printf("倒计时：%d\n",cnt);
        // fflush(stdout);
        sleep(1);
    }
}
void myhandler(int signo)
{
    cout << signo << "号信号被捕捉 " << endl;
    count(5);
}

int main()
{
    struct sigaction act,oact;
    act.sa_handler = myhandler;
    act.sa_flags = 0;
    sigemptyset(&act.sa_mask);
    //我们在处理某个信号时，也想顺便屏蔽其他信号，就可以添加到这个sa_mask中。
    // sigaddset(&act.sa_mask,3);

    sigaction(SIGINT,&act,&oact);
    while(true)
    {
        sleep(1);
    }

    return 0;
}